#ifndef IGRAPHGENERATOR_H_
#define IGRAPHGENERATOR_H_

#include <ext/hash_map>
namespace stdext
{
	using namespace __gnu_cxx;
}
#include <boost/shared_ptr.hpp>

#include "graph_support/utils/HashSupport.h"
#include "graph_support/impls/vector/VectorGraph.h"

#include "GraphPointerGuard.h"

namespace native_orbitor
{

class IGraphGenerator
{
public:
	IGraphGenerator();
	virtual ~IGraphGenerator();

public:
	typedef stdext::hash_map< std::string, double, GRAPH_SUPPORT_NS::utils::Hash4StdString > SettingsMap;

public:
	virtual std::auto_ptr< GraphPointerGuard > generateGraph(
			SettingsMap settingsMap ) = 0;
};

}

#endif /* IGRAPHGENERATOR_H_ */
